// Copyright (C) 2023 即时通讯网(52im.net) & Jack Jiang.
// The RainbowChat Project. All rights reserved.
// 
// 【本产品为著作权产品，合法授权后请放心使用，禁止外传！】
// 【本次授权给：<北京小羊驼科技有限公司>，授权编号：<NT231212144350>，代码指纹：<A.702363430.550>，技术对接人微信：<ID: wxid_wbyootvkdcgj22>】
// 【授权寄送：<收件：苏先生、地址：北京市大兴区北京密码西区6号楼1单元301、电话：18613885610、邮箱：bd@huiyuanxiang-inc.com>】
// 
// 【本系列产品在国家版权局的著作权登记信息如下】：
// 1）国家版权局登记名(简称)和权证号：RainbowChat    （证书号：软著登字第1220494号、登记号：2016SR041877）
// 2）国家版权局登记名(简称)和权证号：RainbowChat-Web（证书号：软著登字第3743440号、登记号：2019SR0322683）
// 3）国家版权局登记名(简称)和权证号：RainbowAV      （证书号：软著登字第2262004号、登记号：2017SR676720）
// 4）国家版权局登记名(简称)和权证号：MobileIMSDK-Web（证书号：软著登字第2262073号、登记号：2017SR676789）
// 5）国家版权局登记名(简称)和权证号：MobileIMSDK    （证书号：软著登字第1220581号、登记号：2016SR041964）
// * 著作权所有人：江顺/苏州网际时代信息科技有限公司
// 
// 【违法或违规使用投诉和举报方式】：
// 联系邮件：jack.jiang@52im.net
// 联系微信：hellojackjiang
// 联系QQ号：413980957
// 授权说明：http://www.52im.net/thread-1115-1-1.html
// 官方社区：http://www.52im.net
package com.x52im.mall.logic.shop;

import android.app.Activity;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.TextView;

import com.x52im.rbchat.R;
import com.x52im.mall.Utility;
import com.eva.epc.common.util.CommonUtils;

/**
 * 金额合计等包装实现类.
 * 
 * @author Jack Jiang(http://www.52im.net/space-uid-1.html)
 * @version 1.0
 */
public class OrderComfirmAmountWrapper
{
	private Activity parentActivity = null;

	/** 标签组件：商品金额货币类型 */
	private TextView viewGoodsAmountCurrency = null;
	/** 标签组件：商品金额（不含运费） */
	private TextView viewGoodsAmount = null;
	/** 标签组件：运费金额货币类型 */
	private TextView viewTransferFareCurrency = null;
	/** 标签组件：运费金额 */
	private TextView viewTransferFare = null;
	/** 标签组件：订单金额货币类型 */
	private TextView viewTotalAmountCurrency = null;
	/** 标签组件：订单金额（含运费） */
	private TextView viewTotalAmount = null;

	public OrderComfirmAmountWrapper(Activity parentActivity)
	{
		this.parentActivity = parentActivity;

		initViews();
		initListeners();
	}

	/**
	 * UI初始化核心方法.
	 */
	private void initViews()
	{
		viewGoodsAmountCurrency = (TextView)parentActivity
				.findViewById(R.id.common_mall_shop_layout_order_confirm_amount_goodsAmountCurrencyView);
		viewGoodsAmount = (TextView)parentActivity
				.findViewById(R.id.common_mall_shop_layout_order_confirm_amount_goodsAmountView);
		viewTransferFareCurrency = (TextView)parentActivity
				.findViewById(R.id.common_mall_shop_layout_order_confirm_amount_transferFareCurrencyView);
		viewTransferFare = (TextView)parentActivity
				.findViewById(R.id.common_mall_shop_layout_order_confirm_amount_transferFareView);
		viewTotalAmountCurrency = (TextView)parentActivity
				.findViewById(R.id.common_mall_shop_layout_order_confirm_amount_totalAmountCurrencyView);
		viewTotalAmount = (TextView)parentActivity
				.findViewById(R.id.common_mall_shop_layout_order_confirm_amount_totalAmountView);

		//** 默认货币类型显示
		viewGoodsAmountCurrency.setText(Utility.DEFAULT_CURRENCY_TYPE_NAME);
		viewTransferFareCurrency.setText(Utility.DEFAULT_CURRENCY_TYPE_NAME);
		viewTotalAmountCurrency.setText(Utility.DEFAULT_CURRENCY_TYPE_NAME);
	}
	
	/**
	 * UI组件监听器初始化方法.
	 */
	private void initListeners()
	{
		// ** 商品总价、物流费用UI组件的文本变更时立即更新应付总金额
		TextWatcher tw = new TextWatcher(){
			@Override
			public void beforeTextChanged(CharSequence s, int start,
					int count, int after){
				//
			}
			@Override
			public void onTextChanged(CharSequence s, int start,
					int before, int count){
				//
			}

			@Override
			public void afterTextChanged(Editable s)
			{
				refreshTotalAmount();
			}
		};
		viewGoodsAmount.addTextChangedListener(tw);
		viewTransferFare.addTextChangedListener(tw);
	}

	/**
	 * 刷新应付总金额在UI上的显示.
	 * 
	 * @param goodsAmount
	 */
	public void refreshGoodsAmount(double goodsAmount)
	{
		viewGoodsAmount.setText(String.valueOf(goodsAmount));
	}

	/**
	 * 刷新物流费用在UI上的显示.
	 * 
	 * @param transferFare
	 */
	public void refreshTransferFare(double transferFare)
	{
		viewTransferFare.setText(String.valueOf(transferFare));
	}
	
	public String getTotalAmount()
	{
		return viewTotalAmount.getText().toString();
	}

	/**
	 * 更新总金额 = 商品总金额  + 运费。
	 */
	private void refreshTotalAmount()
	{
		viewTotalAmount.setText(
				CommonUtils.getScaledValue(CommonUtils.getDoubleValue(viewGoodsAmount.getText().toString())
						+ CommonUtils.getDoubleValue(viewTransferFare.getText().toString()), 2, false)
				);
	}
}